$(function() {
	var bv = App.base.validator = {
		'required': function(v, f) {
			if ((v && v.replace(/\s+/g, ''))) {
				return;
			}
			return mac.msg(Msg.validation['required'], [ f || '']);
		},	
		'emailFmt': function(v,f){
			var r = /^[A-Za-z0-9\d]+([-_\.\+]*[A-Za-z0-9\d])*@([a-z0-9\d][a-z0-9\d-]{0,61}[a-z0-9\d]\.)+[a-z\d]{2,6}$/;
			if(r.test(v)) {
				return;
			}
			return mac.msg(Msg.validation['email'], [ f || '' ]);
		},
		'phoneFmt': function(v,f){
			var r = /^(13[0-9]|14[0-9]|15[0-9]|170|177|18[0-9])\d{8}$/;
			if(r.test(v)) {
				return;
			}
			return mac.msg(Msg.validation['phone'], [ f || '' ]);
		},
		'pathFmt': function(v,f){
			var winpath = /^[a-zA-Z]:(\\([0-9a-zA-Z_\-\.]+))+$/;
			var lnxPath = /^(\/*([0-9a-zA-Z_\-\.]+))+$/;
			var url = /[a-zA-z]+:(\/\/([0-9a-zA-Z\.]+))+/;
			/* 某些路径输入框是非必填，这里v==''是为了当路径不填时跳过判断 */
			if(winpath.test(v) || lnxPath.test(v) || url.test(v) || v=='') {
				return;
			}
			return mac.msg(Msg.validation['path'], [ f || '' ]);
		},
		'verFmt': function(v,f){
			//版本号,例如1.0.0
			var r = /^\d+(\.\d+)*$/;
			/* 某些路径输入框是非必填，这里v==''是为了当路径不填时跳过判断 */
			if(r.test(v) || v=='') {
				return;
			}
			return mac.msg(Msg.validation['version'], [ f || '' ]);
		},
		'portFmt': function(v,f){
			var rgx=/^[0-9]{1,5}$/;
			if(rgx.test(v)||v==''){
				return;				
			}
			return mac.msg(Msg.validation['port'], [ f || '' ]);
		}
	}
	
	App.base.validation = {
		'common':{
			'status': {
				'required': bv.required
			},
			'email': {
				'emailFmt': bv.emailFmt
			},
			'phone': {
				'phoneFmt': bv.phoneFmt
			},
			'path': {
				'pathFmt': bv.pathFmt
			},
			'version': {
				'verFmt': bv.verFmt
			}
		},
		'admin':{
			'name': {
				'empty': 0,
				'len': { min: 2, max: 32 },
				'cn_az-09': 0
			},
			'nick': {
				'empty': 0,
				'len': { min: 1, max: 32 },
				'cn_az-09': 0
			}
		},
		'dir':{
			'code': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'en_az-09s.': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'cn_az-09': 0
			}
		},
		'svc':{
			'code': {
				'empty': 0,
				'len': { min: 2, max: 64 },
				'en_az-09': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 2, max: 64 },
				'cn_az-09': 0
			},
			'version': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'cn_az-09': 0
			},
			'face': {
				'empty': 0
			},
			'env': {
				'empty': 0
			},
			'ip': {
				'empty': 0,
				'ip': 0
			},
			'group': {
				'empty': 0
			},
			'memo': {
				'empty': 0
			}
		},
		'lib': {
			'name': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'cn_az-09': 0
			},
			'code': {
				'empty': 0,
				'len': { min: 2, max: 32 },
				'en_az-09': 0
			},
			'level': {
				'empty': 0
			},
			'ver': {
				'empty': 0
			},
			'memo': {
				'empty': 0
			},
			'type': {
				'empty': 0
			},
			'path': {
				'empty': 0
			},
			'pom': {
				'empty': 0
			}
		},
		'proj': {
			'code': {
				'empty': 0,
				'len': { min: 2, max: 32 },
				'en_az-09s.': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 2, max: 32 },
				'cn_az-09': 0
			}
		},
		'app': {
			'code': {
				'empty': 0,
				'len': { min: 2, max: 64 },
				'en_az-09': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 2, max: 64 },
				'cn_az-09': 0
			},
			'version': {
				'empty': 0
			},
			'sourceRoot': {
				'empty': 0
			},
			'sourcePath': {
				'empty': 0,
				'pathFmt': bv.pathFmt
			},
			'deployPath': {
				'empty': 0
			},
			'compile': {
				'empty': 0
			},
			'deploy': {
				'empty': 0
			},
			'pom': {
				'empty': 0
			},
			'memo': {
				'empty': 0
			},
			'type': {
				'empty': 0
			},
			'port': {
				'portFmt':bv.portFmt
			},
			'level': {
				'empty': 0
			},
			'inst': {
				'path': {
					'empty': 0
				},
				'user': {
					'empty': 0
				},
				'port': {
					'empty': 0
				},
				'serverCode':{
					'empty': 0
				},
				'serverName':{
					'empty': 0
				}
			}
		},
		'face': {
			'code': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'en_az-09': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'cn_az-09': 0
			},
			'ver': {
				'empty': 0,
				'verFmt': bv.verFmt
			},
			'entry': {
				'empty': 0,
				'len': { min: 1, max: 32 },
				'cn_az-09': 0
			}
		},
		'server': {
			'code':{
				'empty': 0,
				'len': { min: 4, max: 32 },
				'en_az-09': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'cn_az-09': 0
			},
			'ip': {
				'empty': 0,
				'ip': 0
			}
		},
		'inst': {
			'serverId': {
				'empty': 0
			},
			'ip': {
				'empty': 0,
				'ip': 0
			}
		},
		'com': {
			'code': {
				'empty': 0,
				'len': { min: 4, max: 32 },
				'cn_az-09': 0
			},
			'name': {
				'empty': 0,
				'len': { min: 2, max: 32 },
				'cn_az-09': 0
			}
		},
		'env': {
			'code': {
				'empty': 0,
				'len': { min: 2, max: 255 },
				'cn_az-09.': 0
			},
			'catalog': {
				'empty': 0,
				'len': { min: 2, max: 64 }
			},'value': {
				'empty': 0,
				'len': { min: 1, max: 255 }
			},'status': {
				'empty': 0,
				'len': { min: 1, max: 4 }
			},'memo': {
				'len': { min: 1, max: 255 }
			}
		}
	}
});
